package com.axxc.jpa.task.rabbitmsg.provider;

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;

/**
 * @ClassName: RabbitMqStringMsgProviderTask
 * @Description: topic 是RabbitMQ中最灵活的一种方式，可以根据binding_key自由的绑定不同的队列
 *               首先对topic规则配置，这里使用两个队列来测试（也就是在
 *               {@link com.axxc.jpa.config.RabbitMqConfig}类中创建和绑定的topic.
 *               message和topic.messages两个队列）,
 *               其中topic.message的binding_key为“topic.message”，topic.
 *               messages的binding_key为“topic.#”；
 * @author xxc
 * @date 2018年8月3日 下午3:27:26
 * @see com.axxc.jpa.config.RabbitMqConfig
 */
//@Component
public class RabbitMqTopicExchangeMsgProviderTask {

	@Autowired
	private AmqpTemplate rabbitTemplate;

	@Async
	@Scheduled(cron = "0/20 * * * * *") // 每二十秒
	public void reportCurrentTime() {
		String msg1 = "I am topic.mesaage msg======";
		this.rabbitTemplate.convertAndSend("exchange", "topic.message", msg1);// 交换机模式,绑定路由的key为topic.message

		String msg2 = "I am topic.mesaages msg########";
		this.rabbitTemplate.convertAndSend("exchange", "topic.messages", msg2);// 交换机模式,绑定路由的key为topic.message
	}
}
